#include <iostream>
//#include <cstdio>
//#include <cstring>

using namespace std;


// valore_assoluto assume tre significati diversi grazie all'overloading
// il compilatore determina la funzione da richiamare sulla base del tipo di argomento
// il tipo e/o il numero dei parametri deve essere diverso

void concatena(char *, char *);
void concatena(char *, int);


int main()
{
char stringa[80];

strcpy(stringa, "Salve ");
concatena(stringa, "a tutti voi che siete");
cout<<stringa<<"\n";

concatena(stringa, 100);
cout<<stringa<<"\n";

return 0;
}

//concatena due stringhe
void concatena(char *stringa1, char *stringa2)
{
strcat(stringa1,stringa2);
}

//concatena una stringa con un intero convertito in stringa
void concatena(char *stringa1, int i)
{
char temp[80];
sprintf(temp," %d",i);
strcat(stringa1,temp);
}

/* risultato
Salve a tutti voi che siete
Salve a tutti voi che siete 100
Press any key to continue
*/